<?php

namespace Amis\dataviewer;

use Amis\Basics\AmisBasics;

class Timeline extends AmisBasics
{
    public string $type = 'timeline';

    /**
     * 配置节点数据
     * time    string        节点时间
     * title    string | [SchemaNode](../../docs/types/schemanode)        节点标题
     * detail    string        节点详细描述（折叠）
     * detailCollapsedText    string    展开    详细内容折叠时按钮文案
     * detailExpandedText    string    折叠    详细内容展开时按钮文案
     * color    string | level样式（info、success、warning、danger）    #DADBDD    时间轴节点颜色
     * icon    string        icon 名，支持 fontawesome v4 或使用 url（优先级高于color）
     * @param \Amis\dataviewer\TimelineItems ...$items
     * @return $this
     */
    public function items(TimelineItems ...$items)
    {
        $this->set(__FUNCTION__, ...$items);
        return $this;
    }

    /**
     * 数据源，可通过数据映射获取当前数据域变量、或者配置 API 对象
     * @param string $source
     * @return $this
     */
    public function source(string $source)
    {
        $this->source = $source;
        return $this;
    }

    /**
     * 指定文字相对于时间轴的位置，仅 direction=vertical时支持
     * left | right | alternate
     * @param string $mode
     * @return $this
     */
    public function mode(string $mode = 'right')
    {
        $this->mode = $mode;
        return $this;
    }

    /**
     * 时间轴方向
     * @param bool $IsVertical
     * @return $this
     */
    public function direction(bool $IsVertical = false)
    {
        $this->direction = $IsVertical ? 'vertical' : 'horizontal';
        return $this;
    }

    public function reverse(bool $reverse = false)
    {
        $this->reverse = $reverse;
        return $this;
    }
}
